//
//  UIViewControllerEnums.swift
//  Documentation
//
//  Created by Toj on 4/21/23.
//

public enum UIModalPresentationStyle : Int, @unchecked Sendable {

    // 完全屏幕样式,这是默认值。被presented的视图控制器将覆盖掉presenting视图控制器。
    case fullScreen = 0

    // 页式样式,被presented视图控制器从屏幕底部滑入,高度约为屏幕2/3。
    case pageSheet = 1

    // 表单样式,与pageSheet类似但从中间滑入。
    case formSheet = 2

    // 现有环境样式,被presented视图控制器覆盖在presenting视图控制器之上,而presenting视图控制器仍然可见和可交互。
    case currentContext = 3

    // 自定义
    case custom = 4

    // 这个modalPresentationStyle会使anotherVC以半模态的形式显示,并不会完全覆盖presentedVC,所以其present行为也不会被打断
    case overFullScreen = 5

    // .overCurrentContext样式使被presented的视图控制器显示为一个半透明的全屏模态,且下面的视图控制器内容仍可见和可交互。
    //  这种样式常用于当你需要present一个视图控制器来显示一些附加信息或工具,但又不想完全打断用户当前的工作流或交互。
    case overCurrentContext = 6

    // 气泡样式,被presented视图控制器在一个气泡中,显示在presenting视图控制器的一点之上。需要通过perpPopoverPresentationController设置气泡的箭头方向和位置。
    case popover = 7

    // 无样式,被presented视图控制器不会作为一个模态展示,仅作为一个独立的视图控制器push或present出来。
    case none = -1

    // automatic
    case automatic = -2
}
